home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 3 / Amiga Format CD03 (1996-07-04)(Future Publishing)(GB)(Track 1 of 6)[!][issue 1996-08].iso / comms / netsoftware / nethandler.lha / NetHandler / handler / devio.c < prev    next >
C/C++ Source or Header  |  1989-09-16  |  2KB  |  59 lines

  1. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\
  2. * |_o_o|\\ Copyright (c) 1988 The Software Distillery.  All Rights Reserved *
  3. * |. o.| ||          Written by Doug Walker                                 *
  4. * | .  | ||          The Software Distillery                                *
  5. * | o  | ||          235 Trillingham Lane                                   *
  6. * |  . |//           Cary, NC 27513                                         *
  7. * ======             BBS:(919)-471-6436                                     *
  8. \* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  9.  
  10. #include "handler.h"
  11.  
  12. int RemotePacket(global, nptr)
  13. GLOBAL global;
  14. NETPTR nptr;
  15. {
  16. #if DEBUG
  17.    if(nptr->RDevice == NULL)
  18.    {
  19.       BUGR("Bad NPTR to RPacket")
  20.       BUG(("************ RemotePacket on root! ************\n"));
  21.       return(1);
  22.    }
  23.    else
  24.       BUG(("RemotePacket: RDevice %lx\n", nptr->RDevice));
  25. #endif
  26.  
  27. #ifndef SMALLPACKET
  28.    global->RP.serverid = nptr->NetNode->id;
  29.    MBSTR(nptr->NetNode->name, global->RP.server);
  30. #endif
  31.    global->RP.RDevice = nptr->RDevice;
  32.    
  33.    if(nptr->NetNode->status == NODE_CRASHED) 
  34.       ReSync(global, nptr->NetNode->ioptr);
  35.  
  36.    if(nptr->NetNode->status != NODE_UP ||
  37.       PutRPacket(global, nptr->NetNode->ioptr) || 
  38.       GetRPacket(global, nptr->NetNode->ioptr))
  39.    {
  40.       BUG(("RemotePacket: No connection\n"));
  41.       if(nptr->NetNode->status == NODE_UP) global->upnodes--;
  42.       nptr->NetNode->status = NODE_CRASHED;
  43.       global->pkt->dp_Res1 = NULL;
  44.       global->pkt->dp_Res2 = ERROR_NODE_DOWN;
  45.       return(1);
  46.    }
  47.    else
  48.    {
  49.       BUG(("RemotePacket: Received codes %lx, %lx\n", 
  50.          global->RP.Arg1, global->RP.Arg2));
  51.       global->pkt->dp_Res1 = global->RP.Arg1;
  52.       global->pkt->dp_Res2 = global->RP.Arg2;
  53.  
  54.       /* The other side may have decided to change our RDevice */
  55.       nptr->RDevice = global->RP.RDevice;
  56.       return(0);
  57.    }
  58. }
  59.